The present invention relates generally to storage systems with thin provisioning and, more particularly, to the allocation of an area of a logical volume to a virtual volume.
A HDD (Hard Disk Drive) has a platter to store magnetic data. There are a lot of sectors on the platter. The HDD also has a disk head to read the data from the sector and write the data from the sector. The length of the sector is fixed. The number of sectors on the outer circumference of the platter is more than that on the inner circumference because the length of the outer circumference on the platter is greater than the length of the inner circumference. Therefore, a read time from the outer circumference and a write time to the outer circumference are shorter than those for the inner circumference.
The HDD is accessed with an address to specify the area to read or write. A lower address is allocated to the outer circumference and a higher address is allocated to the inner circumference. Therefore a read time from a lower address and a write time to a lower address are shorter than those for a higher address. There is an application to store data that is frequently accessed to the lower address and to store data that is rarely accessed to the higher address in order to complete read and write processes more quickly.
In recent years, thin provisioning has become popular. Thin provisioning is a method for allocating an area to a virtual volume when a storage subsystem receives a write command to an unallocated area. Existing methods allow a thin provisioning function to allocate an area randomly selected from several HDDs to a virtual volume (see FIG. 1). When an area on a higher address is allocated to a lower address in the virtual volume, the application stores data that is frequently accessed to the higher address in HDD. As a result, performance in the application will decrease. An example for managing virtual volumes in a utility storage server system is found in U.S. Pat. No. 6,823,442.